An except
clause that only rethrows the caught exception has the same effect as omitting the except
altogether and
letting it bubble up automatically.
a = {}
try:
a[5]
except KeyError:
raise # Noncompliant
Such clauses should either be removed or populated with the appropriate logic.
a = {}
try:
a[5]
except KeyError as e:
logging.exception('error while accessing the dict')
raise e